#include <unistd.h>   // 修正头文件
#include <stdio.h>
#include <string.h>   // 补充头文件

int main() {
    char *arglist[3];  // 数组大小调整为3
    pid_t pid;

    arglist[0] = "ls";
    arglist[1] = "-l";
    arglist[2] = NULL; // 参数列表必须以NULL结尾

    pid = fork();

    if (pid == 0) {    // 修正语法错误
        // 子进程执行命令
        execvp("ls", arglist);
        // 若execvp失败才会执行以下代码
        perror("execvp failed");
        return 1;
    } else if (pid > 0) {
        // 父进程继续执行
        printf("*** program is over. bye\n");
    } else {
        // fork失败处理
        perror("fork failed");
        return 1;
    }

    return 0;
}
